﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace RPG_Helper
{
    /// <summary>
    /// Logique d'interaction pour addEquipement.xaml
    /// </summary>
    public partial class AddEquipement : Window
    {
        public AddEquipement(List<enumerations.caracteristique> caracsDispo)
        {
            InitializeComponent();
            nouvelEquipement = new Equipement();
            foreach(enumerations.caracteristique carac in caracsDispo)
                this.caracBox.Items.Add(new ComboBoxItem() { Content = Enum.GetName(typeof(enumerations.caracteristique), carac) });
            this.caracBox.Items.Add(new  ComboBoxItem() { Content = Enum.GetName(typeof(enumerations.caracteristique), enumerations.caracteristique.Vie) });
            this.caracBox.Items.Add(new  ComboBoxItem() { Content = Enum.GetName(typeof(enumerations.caracteristique), enumerations.caracteristique.Mana) });
            this.caracBox.SelectedIndex = 0;
        }

        private void add_Click(object sender, RoutedEventArgs e)
        {
            int valeur, signe;
            enumerations.ApplicationModification typeModif;
            enumerations.caracteristique caracteristiqueConcernee;

            #region verification valeur = entier
            if(!Int32.TryParse(this.valeur.Text, out valeur))
            { this.valeur.Text +=" : N'est pas un nombre"; return; }
            if(this.influence.SelectedItem == null || this.signe.SelectedItem == null) return;
            #endregion

            if(((ComboBoxItem)this.influence.SelectedItem).Content.ToString().Equals("%")) typeModif = enumerations.ApplicationModification.Pourcentage;
            else typeModif = enumerations.ApplicationModification.Directe;
            
            if(((ComboBoxItem)this.signe.SelectedItem).Content.ToString().Equals("+")) signe = 1;
            else signe = -1;
            caracteristiqueConcernee = (enumerations.caracteristique)Enum.Parse(typeof(enumerations.caracteristique), ((ComboBoxItem)this.caracBox.SelectedItem).Content.ToString());
            TextBlock tb = new TextBlock()
            {
                Name = "modif" + this.listeModifs.Children.Count,
                Text = (signe < 0 ? "-" : "+") + 
                        valeur +
                        (typeModif == enumerations.ApplicationModification.Pourcentage ? "%" : "") +  
                        " (" + Enum.GetName(typeof(enumerations.caracteristique), caracteristiqueConcernee) + ")"
            };
            nouvelEquipement.ajoutModifications(signe, valeur, typeModif, caracteristiqueConcernee);
            this.listeModifs.Children.Insert(this.listeModifs.Children.Count-1, tb);
            this.influence.SelectedIndex = 0;
            this.signe.SelectedIndex = 0;
            this.caracBox.SelectedIndex = 0;
            this.valeur.Text = "Modification de";
        }

        public Equipement EquipementCree { get { return nouvelEquipement; } }
        private Equipement nouvelEquipement;

        private void ok_Click(object sender, RoutedEventArgs e)
        { if(this.boxNom.Text.Equals("")) { this.boxNom.Text = "???"; return; } nouvelEquipement.Nom = this.boxNom.Text; this.DialogResult = true; }

    }
}
